#include <QMessageBox>
#include <QMenuBar>
#include "defs.h"
#include "dlgtp.h"
#include "mytp.h"
#include <QDebug>
extern MyTp * ptp;

DlgTp::DlgTp(const QString &title)
{
    ui.setupUi(this);
    //ui.msgWindow->
    //DlgTp::MsgHandler = this;
    //qDebug()<<"error:"<<ptp->pmyport->errorString();
}

void DlgTp::about()
{
    QMessageBox::about(this, tr("About "APP_TITLE),
                       tr("<B>"APP_TITLE"</B><BR>"
                          "author: Michal Policht<br>"
                          "<a href='mailto:xpolik@users.sourceforge.net'>xpolik@users.sourceforge.net</a>"));
}


void DlgTp::transmitMsg()
{
    if(ptp->isOpen){
        QByteArray bytes=ui.message->text().toLocal8Bit();
        qDebug()<<bytes;
        int i = ptp->pmyport->write(bytes);
        qDebug("trasmitted : %d", i);
    }
}

void DlgTp::receiveMsg()
{
    // char buff[1024];
    // int numBytes;

    // numBytes = ptp->pmyport->bytesAvailable();
    // if(numBytes > 1024)
    //     numBytes = 1024;

    // int i = ptp->pmyport->read(buff, numBytes);
    // if (i != -1)
    //     buff[i] = '\0';
    // else
    //     buff[0] = '\0';
    // QString msg = buff;

    // ui.received_msg->append(msg);
    // ui.received_msg->ensureCursorVisible();
    // qDebug("bytes available: %d", numBytes);
    // qDebug("received: %d", i);
}


void DlgTp::appendCR()
{
    ui.message->insert("\x0D");
}

void DlgTp::appendLF()
{
    ui.message->insert("\x0A");
}
void DlgTp::read()
{
    // ui.message->insert("\x0A");
    // qDebug()<<"read";
    // qDebug()<<ptp->read();
    QByteArray bytes;
    bytes.append(27);
    bytes.append(84);
    bytes.append(13);
    bytes.append(13);
    if(ptp->isOpen){
        qDebug()<<bytes;
        int i = ptp->pmyport->write(bytes);
        qDebug("trasmitted : %d", i);
    }
}

//void DlgTp::closeptp->pmyport()
//{
//    ptp->pmyport->close();
//    qDebug("is open: %d", ptp->pmyport->isOpen());
//}
//
//void DlgTp::openptp->pmyport()
//{
//    ptp->pmyport->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
//    qDebug("is open: %d", ptp->pmyport->isOpen());
//}
bool DlgTp::getOneRec(QString *msg)
{
    // char buff[1024];
    // //int numBytes;
    // qint64 nread;
    // if(DEMO)
    // {
    //     msg->clear();
    //     msg->append("             +   0.2417    ");
    //     return true;
    // }
    // if (!ptp->pmyport->isOpen())
    // {
    //     return false;
    // }
    // nread=ptp->pmyport->readLine(buff,1024);
    // if (nread == -1)
    //     return false;
    // nread=ptp->pmyport->readLine(buff,1024);
    // if (nread != -1)
    //     buff[nread] = '\0';
    // else
    //     return false;
    // msg->clear();
    // msg->append(buff);
    // return true;
}

void DlgTp::on_clearButton_clicked()
{
    QString s;
//    s="";
//    s.append(QChar(27));
//    s.append("T\r\n");
//    ui.message->setText(s);
//    int i = ptp->pmyport->write((ui.message->text()).toAscii(),
//                        (ui.message->text()).length());
//    qDebug("trasmitted : %d", i);
    bool b=this->getOneRec(&s);
    if(b)
    {
        qDebug()<<s;
    }

}
DlgTp::~DlgTp()
{
}
